import { IPSApplicationObject } from '../ipsapplication-object';
import { IPSAppWF } from './ipsapp-wf';
import { IPSAppWFUIAction } from './ipsapp-wfuiaction';
import { IPSWFVersion } from '../../wf/ipswfversion';

/**
 *
 * @export
 * @interface IPSAppWFVer
 */
export interface IPSAppWFVer extends IPSApplicationObject {
  /**
   * 工作流界面行为集合
   *
   * @type {IPSAppWFUIAction[]}
   */
  getAllPSAppWFUIActions(): IPSAppWFUIAction[] | null;

  /**
   * 工作流界面行为集合
   *
   * @type {IPSAppWFUIAction[]}
   */
  get allPSAppWFUIActions(): IPSAppWFUIAction[] | null;

  findPSAppWFUIAction(objKey: any): IPSAppWFUIAction | null;

  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 应用工作流
   *
   * @type {IPSAppWF}
   */
  getPSAppWF(): IPSAppWF | null;

  /**
   * 应用工作流
   *
   * @type {IPSAppWF}
   */
  get psAppWF(): IPSAppWF | null;

  /**
   * 应用工作流（必须存在）
   *
   * @type {IPSAppWF}
   */
  getPSAppWFMust(): IPSAppWF;

  /**
   * 工作流版本
   *
   * @type {IPSWFVersion}
   */
  getPSWFVersion(): IPSWFVersion | null;

  /**
   * 工作流版本
   *
   * @type {IPSWFVersion}
   */
  get psWFVersion(): IPSWFVersion | null;

  /**
   * 工作流版本（必须存在）
   *
   * @type {IPSWFVersion}
   */
  getPSWFVersionMust(): IPSWFVersion;
}
